<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>买股票的最佳时机</title>
    </head>
    <body></body>
    <!-- 方法一： -->
    <!-- <script src="./js/买股票的最佳时机-1.js"></script> -->
    <!-- 方法二： -->
    <!-- <script src="./js/买股票的最佳时机-2.js"></script> -->
    <!-- 方法三： -->
    <script src="./js/买股票的最佳时机-3.js"></script>
    <script>
        /**
        给定一个数组，它的第i个元素是一支给定的股票在第i天的价格。设计一个算法来计算 你所能获取的最大利润。你最多可以完成两笔交易。
        注意：你不能同时参与多笔交易（你必须在再次购买前出售掉之前的股票）。

        输入：prices = [ 3 , 3 , 5 , 0 , 0 , 3 , 1 , 4 ]
        输出：6
        解 释 ： 在 第 4 天 （ 股 票 价 格 = 0 ） 的 时 候 买 入 ， 在 第 6 天 （ 股 票 价 格 = 3 ） 的 时 候 卖 出，这笔交易所能获得利润 = 3 -0 = 3 。 
        随后，在第 7 天（股票价格 = 1）的时候买入，在第 8 天 （股票价格 = 4）的时候 卖出，这笔交易所能获得利润 = 4 -1 = 3 。 

        输入：prices = [ 1 , 2 , 3 , 4 , 5 ]
        输出：4
        解释：在第 1 天（股票价格 = 1）的时候买入，在第 5 天 （股票价格 = 5）的时候卖出, 这笔交易所能获得利润 = 5 -1 = 4 。 
        注意你不能在第 1 天和第 2 天接连购买股票，之后再将它们卖出。 因为这样属于同时参与了多笔交易，你必须在再次购买前出售掉之前的股票。   

        输入：prices = [ 7 , 6 , 4 , 3 , 1 ]
        输出：0 
        解释：在这个情况下, 没有交易完成, 所以最大利润为 0。

        输入：prices = [ 1 ] 
        输出：0
    */
        // 测试:
        // const prices = [3, 3, 5, 0, 0, 3, 1, 4];
        // const prices = [1, 2, 3, 4, 5];
        const prices = [7, 6, 4, 3, 1];
        // const prices = [1];
        console.log(maxProfit(prices));
        // 通过 yyds
    </script>
</html>
